import {ref} from 'vue'
// import {computed, ref} from 'vue'
import {defineStore} from 'pinia'
import {loginAPI, registerAPI} from '@/apis/user'
import {useCartStore} from './cart'
// import { mergeCartAPI } from '@/apis/cart'
import {ElMessage} from "element-plus";
import Cookies from 'js-cookie'

// 储存用户信息
export const useUserStore = defineStore(
    'user',
    () => {
        // 调用购物车store
        const cartStore = useCartStore()
        // 定义用户管理的state
        const userInfo = ref({})
        // const registerUser = async (memberData) => {
        //     try {
        //         const res = await registerAPI(memberData)
        //
        //         if (res.code !== 200) {
        //             throw new Error(res.data || '注册失败，当前账号已存在')
        //         }
        //
        //         // 注册成功后自动登录
        //         await getUserInfo({
        //             username: memberData.username,
        //             password: memberData.password
        //         })
        //
        //         ElMessage.success('注册成功！')
        //         return true
        //     } catch (error) {
        //         ElMessage.error(error.message || '注册失败')
        //         return false
        //     }
        // }
        const registerUser = async (memberData) => {
            try {
                const res = await registerAPI(memberData)

                console.log('res.code : '+ res.code)
                if (res.code !== 200) {
                    throw new Error(res.message || '注册失败，当前账号已存在')
                }
                // ElMessage.success('注册成功！')
                return true
            } catch (error) {
                // 抛出错误让调用方处理
                throw new Error(error.message || '注册失败')
            }
        }
        // 定义获取数据的action函数
        const getUserInfo = async ({username, password}) => {
            const res = await loginAPI({username, password})
            if (res.code !== 200) {
                // throw new Error(res.data.message || '登录失败')
                ElMessage.error(res.data.message || '登录失败');
            }
            userInfo.value = res.data
            // const memberId= computed(() =>userInfo.value ?.memberId || null)
            // 合并购物车操作
            // await mergeCartAPI(memberId.value,
            //   cartStore.cartList.map((item) => {
            //     return {
            //       skuId: item.skuId,
            //       selected: item.selected,
            //       count: item.count
            //     }
            //   })
            // )
            cartStore.updateCartList()
        }
        // 退出时清除用户信息
        const clearUserInfo = () => {
            userInfo.value = {}
            cartStore.clearCart()
            if (Cookies.get('username')) {
                Cookies.remove("username")
            }
            if (Cookies.get("memberId")) {
                Cookies.remove("memberId")
            }

        }
        return {
            getUserInfo,
            userInfo,
            clearUserInfo,
            registerUser
        }
    },
    {
        persist: true
    }
)
